package cn.fintecher.pangolin.service.dataimp.model;

import cn.fintecher.pangolin.common.annotation.ExcelAnno;
import cn.fintecher.pangolin.common.enums.PayStatus;
import cn.fintecher.pangolin.common.model.RemarkModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.util.Date;
import java.util.Set;

@Data
public class ExportCaseModel {
    @ApiModelProperty(value = "委托方名称")
    @ExcelAnno(cellName = "委托方名称",fieldDataType = ExcelAnno.FieldDataType.STRING,fieldType = ExcelAnno.FieldType.CASE)
    private String principalName;

    @ApiModelProperty(value = "批次号")
    @ExcelAnno(cellName = "批次号",fieldDataType = ExcelAnno.FieldDataType.STRING,fieldType = ExcelAnno.FieldType.CASE)
    private String batchNumber;

    @ApiModelProperty(value = "案件编号")
    @ExcelAnno(cellName = "案件编号",fieldDataType = ExcelAnno.FieldDataType.STRING,fieldType = ExcelAnno.FieldType.CASE)
    private String caseNumber;

    @ApiModelProperty(value = "委案日期")
    @ExcelAnno(cellName = "委案日期",fieldDataType = ExcelAnno.FieldDataType.DATE,fieldType = ExcelAnno.FieldType.CASE)
    private Date delegationDate;

    @ApiModelProperty(value = "委案城市")
    @ExcelAnno(cellName = "委案城市",fieldDataType = ExcelAnno.FieldDataType.STRING,fieldType = ExcelAnno.FieldType.CASE)
    private String city;

//    @ApiModelProperty(value = "手别")
//    @ExcelAnno(cellName = "手别",fieldDataType = ExcelAnno.FieldDataType.STRING,fieldType = ExcelAnno.FieldType.CASE)
//    private String handNumber;

    @ApiModelProperty(value = "逾期期数")
    @ExcelAnno(cellName = "逾期期数",fieldDataType = ExcelAnno.FieldDataType.INTEGER,fieldType = ExcelAnno.FieldType.CASE)
    private Integer overduePeriods;

    @ApiModelProperty(value = "逾期天数")
    @ExcelAnno(cellName = "逾期天数",fieldDataType = ExcelAnno.FieldDataType.INTEGER,fieldType = ExcelAnno.FieldType.CASE)
    private Integer overdueDays;

    @ApiModelProperty(value = "委案阶段")
    @ExcelAnno(cellName = "委案阶段",fieldDataType = ExcelAnno.FieldDataType.STRING,fieldType = ExcelAnno.FieldType.CASE)
    private String stage;

    @ApiModelProperty(value = "账户号")
    @ExcelAnno(cellName = "账户号",fieldDataType = ExcelAnno.FieldDataType.STRING,fieldType = ExcelAnno.FieldType.CASE)
    private String account;

    @ApiModelProperty(value = "卡号")
    @ExcelAnno(cellName = "卡号",fieldDataType = ExcelAnno.FieldDataType.STRING,fieldType = ExcelAnno.FieldType.CASE)
    private String cardNo;

    @ApiModelProperty(value = "卡类型")
    @ExcelAnno(cellName = "卡类型",fieldDataType = ExcelAnno.FieldDataType.STRING,fieldType = ExcelAnno.FieldType.CASE)
    private String cardNoType;

    @ApiModelProperty(value = "开卡日期")
    @ExcelAnno(cellName = "开卡日期",fieldDataType = ExcelAnno.FieldDataType.DATE,fieldType = ExcelAnno.FieldType.CASE)
    private Date openCardDate;

    @ApiModelProperty(value = "停卡日期")
    @ExcelAnno(cellName = "停卡日期",fieldDataType = ExcelAnno.FieldDataType.DATE,fieldType = ExcelAnno.FieldType.CASE)
    private Date stopCardDate;

    @ApiModelProperty(value = "账单日")
    @ExcelAnno(cellName = "账单日",fieldDataType = ExcelAnno.FieldDataType.STRING,fieldType = ExcelAnno.FieldType.CASE)
    private String billDay;

    @ApiModelProperty(value = "卡额度")
    @ExcelAnno(cellName = "卡额度",fieldDataType = ExcelAnno.FieldDataType.DOUBLE,fieldType = ExcelAnno.FieldType.CASE)
    private Double limitAmt;

    @ApiModelProperty(value = "推广机构")
    @ExcelAnno(cellName = "推广机构",fieldDataType = ExcelAnno.FieldDataType.STRING,fieldType = ExcelAnno.FieldType.CASE)
    private String extensionInfo;

    @ApiModelProperty(value = "推广员")
    @ExcelAnno(cellName = "推广员",fieldDataType = ExcelAnno.FieldDataType.STRING,fieldType = ExcelAnno.FieldType.CASE)
    private String extensionAgent;

    @ApiModelProperty(value = "分行")
    @ExcelAnno(cellName = "分行",fieldDataType = ExcelAnno.FieldDataType.STRING,fieldType = ExcelAnno.FieldType.CASE)
    private String branch;

    @ApiModelProperty(value = "支行")
    @ExcelAnno(cellName = "支行",fieldDataType = ExcelAnno.FieldDataType.STRING,fieldType = ExcelAnno.FieldType.CASE)
    private String subBranch;

    @ApiModelProperty(value = "委案金额")
    @ExcelAnno(cellName = "委案金额",fieldDataType = ExcelAnno.FieldDataType.DOUBLE,fieldType = ExcelAnno.FieldType.CASE)
    private Double overdueAmtTotal;

    @ApiModelProperty(value = "最新欠款金额")
    @ExcelAnno(cellName = "最新欠款金额",fieldDataType = ExcelAnno.FieldDataType.DOUBLE,fieldType = ExcelAnno.FieldType.CASE)
    private Double leftAmt;

    @ApiModelProperty(value = "最后还款金额")
    @ExcelAnno(cellName = "最后还款金额",fieldDataType = ExcelAnno.FieldDataType.DOUBLE,fieldType = ExcelAnno.FieldType.CASE)
    private Double latestPayAmt;

    @ApiModelProperty(value = "最后还款日期")
    @ExcelAnno(cellName = "最后还款日期",fieldDataType = ExcelAnno.FieldDataType.DATE,fieldType = ExcelAnno.FieldType.CASE)
    private Date latestPayDate;

//    @ApiModelProperty(value = "还款总金额")
//    @ExcelAnno(cellName = "还款总金额",fieldDataType = ExcelAnno.FieldDataType.DOUBLE,fieldType = ExcelAnno.FieldType.CASE)
//    private Double payAmountTotal;

    @ApiModelProperty("还款状态")
    @ExcelAnno(cellName = "还款状态",fieldDataType = ExcelAnno.FieldDataType.STRING,fieldType = ExcelAnno.FieldType.CASE)
    private PayStatus payStatus;

    @ApiModelProperty(value = "退案日期")
    @ExcelAnno(cellName = "退案日期",fieldDataType = ExcelAnno.FieldDataType.DATE,fieldType = ExcelAnno.FieldType.CASE)
    private Date endCaseDate;

    @ApiModelProperty(value = "姓名")
    @ExcelAnno(cellName = "姓名",fieldDataType = ExcelAnno.FieldDataType.STRING,fieldType = ExcelAnno.FieldType.CASE)
    private String personalName;

    @ApiModelProperty(value = "证件号")
    @ExcelAnno(cellName = "证件号",fieldDataType = ExcelAnno.FieldDataType.STRING,fieldType = ExcelAnno.FieldType.CASE)
    private String certificateNo;

    @ApiModelProperty(value = "证件类型")
    @ExcelAnno(cellName = "证件类型",fieldDataType = ExcelAnno.FieldDataType.STRING,fieldType = ExcelAnno.FieldType.CASE)
    private String certificateType;
//
//    @ApiModelProperty(value = "性别")
//    @ExcelAnno(cellName = "性别",fieldDataType = ExcelAnno.FieldDataType.STRING,fieldType = ExcelAnno.FieldType.CASE)
//    private String sex;
//
//    @ApiModelProperty(value = "生日")
//    @ExcelAnno(cellName = "生日",fieldDataType = ExcelAnno.FieldDataType.DATE,fieldType = ExcelAnno.FieldType.CASE)
//    private Date birthday;

    @ApiModelProperty(value = "移动电话")
    @ExcelAnno(cellName = "移动电话",fieldDataType = ExcelAnno.FieldDataType.STRING,fieldType = ExcelAnno.FieldType.CASE)
    private String phone;

    @ApiModelProperty(value = "住宅电话")
    @ExcelAnno(cellName = "住宅电话",fieldDataType = ExcelAnno.FieldDataType.STRING,fieldType = ExcelAnno.FieldType.CASE)
    private String homePhoneNo;

    @ApiModelProperty(value = "单位电话")
    @ExcelAnno(cellName = "单位电话",fieldDataType = ExcelAnno.FieldDataType.STRING,fieldType = ExcelAnno.FieldType.CASE)
    private String employerPhoneNo;

    @ApiModelProperty(value = "住宅地址")
    @ExcelAnno(cellName = "住宅地址",fieldDataType = ExcelAnno.FieldDataType.STRING,fieldType = ExcelAnno.FieldType.CASE)
    private String homeAddr;

    @ApiModelProperty(value = "户籍地址")
    @ExcelAnno(cellName = "户籍地址",fieldDataType = ExcelAnno.FieldDataType.STRING,fieldType = ExcelAnno.FieldType.CASE)
    private String residenceAddr;

    @ApiModelProperty(value = "单位地址")
    @ExcelAnno(cellName = "单位地址",fieldDataType = ExcelAnno.FieldDataType.STRING,fieldType = ExcelAnno.FieldType.CASE)
    private String employerAddr;

    @ApiModelProperty(value = "单位名称")
    @ExcelAnno(cellName = "单位名称",fieldDataType = ExcelAnno.FieldDataType.STRING,fieldType = ExcelAnno.FieldType.CASE)
    private String employerName;

    @ApiModelProperty(value = "邮箱地址")
    @ExcelAnno(cellName = "邮箱地址",fieldDataType = ExcelAnno.FieldDataType.STRING,fieldType = ExcelAnno.FieldType.CASE)
    private String emailAddr;

    @ApiModelProperty(value = "邮寄地址")
    @ExcelAnno(cellName = "邮寄地址",fieldDataType = ExcelAnno.FieldDataType.STRING,fieldType = ExcelAnno.FieldType.CASE)
    private String billAddr;
}
